angular.module('myApp',[],function ($filterProvider,$provide,$controllerProvider) {

    //通过$provide.service提供Data数据
    $provide.factory('Data',function () {
        return [
            {
                name :'张三',
                age : 20,
                city : '上海'
            },
            {
                name :'李四',
                age : 30,
                city : '北京'
            }
        ];
    });

    //过滤器：过滤年龄
    //把年龄<=20的都过滤掉
    $filterProvider.register('filterAge',function () {
        //register的语法为返回一个function，上面的function不能加参数
        //这个function是view中调用时的function
        return function (obj) {
            // console.log(obj)
        //    一定要返回过滤后的对象，否则view中将会为空
            var newObj = [];
            angular.forEach(obj,function(o){
                if(o.age>20){
                    newObj.push(o);
                }
            })
            return newObj;
        }
    });


    //controller通过$controllerProvider提供注册
    $controllerProvider.register('firstController',['$scope','Data',function ($scope,Data) {
        $scope.Data = Data;
    }]);
})
//service用来提供共享数据
//可以用$provide提供
// .service('Data',function () {
//     return{
//         age :35
//     }
// })
//    快捷方法
    //    module.filter
.filter('filterCity',function () {
    //register的语法为返回一个function，上面的function不能加参数
    //这个function是view中调用时的function
    return function (obj) {
        // console.log(obj)
        //    一定要返回过滤后的对象，否则view中将会为空
        var newObj = [];
        angular.forEach(obj,function(o){
            if(o.city==='上海'){
                newObj.push(o);
            }
        })
        return newObj;
    }
})